home *** CD-ROM | disk | FTP | other *** search
/ SGI Origin & Onyx2 Patches 1998 May / Origin and Onyx2 System Disk Patches May 1998.img / relnotes / patchSG0002715 / ch1.z / ch1
Text File  |  1998-04-22  |  15KB  |  463 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        1.  _P_a_t_c_h__S_G_0_0_0_2_7_1_5__R_e_l_e_a_s_e__N_o_t_e
  9.  
  10.        This release note describes patch SG0002715 to IRIX 6.2,
  11.        IRIX 6.3 and IRIX 6.4.
  12.  
  13.        1.1  _S_u_p_p_o_r_t_e_d__H_a_r_d_w_a_r_e__P_l_a_t_f_o_r_m_s
  14.  
  15.        This patch contains bug fixes for all hardware platforms
  16.        running IRIX6.2, IRIX6.3, or IRIX6.4.
  17.  
  18.  
  19.        1.2  _S_u_p_p_o_r_t_e_d__S_o_f_t_w_a_r_e__P_l_a_t_f_o_r_m_s
  20.  
  21.        This patch contains bug fixes to rld and rld.debug (all 3
  22.        ABIs) on a system running IRIX6.2, IRIX6.3, or IRIX6.4.  It
  23.        also contains bug fixes to rqs, rqsall and related
  24.        utilities.  The patch is appropriate for systems with
  25.        compiler_eoe from MIPSpro7.2 or earlier installed (on any of
  26.        the applicable IRIX versions).
  27.  
  28.        This patch replaces patches 1266, 1270, 1336, 1384, 1584,
  29.        1681, 1932, 2044, 2261 and 2458.
  30.  
  31.        The software cannot be installed on other configurations.
  32.        In particular, this patch will not install on systems with
  33.        compiler_eoe from MIPSpro7.2.1.  The MR images of the 7.2.1
  34.        compilers will include versions of rld, rqs, and rqsall
  35.        containing all of these bug fixes.
  36.  
  37.  
  38.        1.3  _B_u_g_s__F_i_x_e_d__b_y__P_a_t_c_h__S_G_0_0_0_2_7_1_5
  39.  
  40.        This patch contains fixes for the following bugs in IRIX
  41.        6.2, IRIX 6.3 and IRIX 6.4.  Bug numbers from Silicon
  42.        Graphics bug tracking system are included for reference.
  43.  
  44.           +o This patch provides rld and rqs binaries which are
  45.             required to run code compiled with the 7.2.1 linker
  46.             multigot feature (Bug #546958).  This patch should be
  47.             installed if patch 2715 or one of its successor patches
  48.             is present.
  49.  
  50.           +o Rld fails to handle multigot shared objects that are
  51.             relocated (Bug #534245)
  52.  
  53.           +o Rqs fails to handle multigot shared objects that are
  54.             relocated.  This is the same as bug number 534245 in
  55.             rld (Bug #536186).
  56.  
  57.           +o Rld could hang when outputting error messages or
  58.             warnings in multithreaded programs.  Whether a hang
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.             actually occurred would depend upon the timing of
  75.             events and rld processing requirements (Bug #520846).
  76.  
  77.           +o Cosmoplayer (the VRML display software) was unable to
  78.             load most worlds due to incorrect symbol preemption in
  79.             DSOs containing symlib tables.  The problem could
  80.             affect other applications as well (Bug #523673).
  81.  
  82.           +o Rld could, under some circumstances, unnecessarily
  83.             reprocess conflict symbols.  This conflict resolution
  84.             could be time-consuming for apps dlopening libraries
  85.             containing many conflict symbols at startup (Bug
  86.             #554894)
  87.  
  88.           +o Sgidlopen_version failed to return handles for
  89.             versioned DSOs when version lookup required searching
  90.             for DSOs whose filenames had been suffixed with the
  91.             major version number (e.g., libfoo.so.2)  This was a
  92.             regression from the rld in the 7.1 compiler release
  93.             (Bug #560586).
  94.  
  95.           +o At runtime, rld uses the timestamp of a dso as the key
  96.             to determine if this is the actual dso against which we
  97.             originally linked.  It depends upon timestamps of dso's
  98.             to be unique.  It assumes there can never be two
  99.             different dso's with the same soname and same
  100.             timestamp.  Rqsall (and rqs) run so fast that it is
  101.             possible for two libraries with the same soname to get
  102.             the same timestamp.  [ex. rqs'ing mips3/libm.so and
  103.             mips4/libm.so] Rqsall now assigns unique timestamps to
  104.             libraries with the same soname.  (Bug #538535)
  105.  
  106.           +o Rqsall has been updated to do a better job of assigning
  107.             load addresses to DSOs.  It now honors reasonable
  108.             values of $start_address in the so_locations files (Bug
  109.             #556199), computes library sizes accurately (Bug
  110.             #561583), uses appropriate upper and lower address
  111.             bounds for laying out o32, n32 and n64 libraries (Bug
  112.             #566180).  The -move option now provides a mechanism
  113.             for forcing a full requickstart of the installed DSOs.
  114.             New load addresses are assigned to each DSO, packing
  115.             them as tightly as possible.  (Bug #555509)
  116.  
  117.        The following bug fixes were originally provided in one or
  118.        more of the patches replaced by this patch.
  119.  
  120.           +o A multigot DSO that moves at run time could coredump
  121.             the application due to incorrect handling of
  122.             relocations.  (Bug #534245)
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.           +o This patch has a correction for a bug in
  141.             LD_LIBRARY_PATH handling introduced in patch 2261 (2261
  142.             was withdrawn and is not available because of the bug).
  143.             (Bug #530749)
  144.  
  145.           +o If a circular DSO liblist dependency exists the
  146.             dlopen() reference counting was wrong resulting in an
  147.             extra reference being counted. This could mean that on
  148.             dlclose() that the reference count did not decrement to
  149.             0 (ever) and that any -fini code would not be run on
  150.             the affected DSO.  Circular liblist dependencies (even
  151.             indirect) are a bad thing and the order of execution of
  152.             -init and -fini code is undefined. But at least now the
  153.             reference count is correct.  (Bug #527001)
  154.  
  155.           +o Delay-loading DSOs could be slow if there were a lot of
  156.             DSOs. Now in many cases delay-loading is faster.  (Bug
  157.             #506076)
  158.  
  159.           +o The static size of rld's text is now significantly
  160.             smaller than previous versions.  (Bug #506166).
  161.  
  162.           +o Confusing messages about OEX flags (rarely seen) are
  163.             now easier to understand.  (Bug #507206)
  164.  
  165.           +o A completely useless warning about a DSO not being the
  166.             right ABI (useless because rld simply keeps looking for
  167.             the right DSO anyway) is now suppressed unless the
  168.             environment variable _RLD_ARGS has the -v option.  (Bug
  169.             503926)
  170.  
  171.           +o Previous patches fixing the problems noted below (such
  172.             as 2044) could fail to replace a *.sw32 subsystem: that
  173.             subsystem no longer exists (it did in patch 1584 for
  174.             example) so leaving it behind was a mistake in patch
  175.             2044.  The rld set here is identical to the rld set in
  176.             patch 2044, but the installation 'replaces' rules have
  177.             been adjusted to clean up the installation database on
  178.             any IRIX 6.2 6.3 or 6.4 system this patch is installed
  179.             on (the parts of that installation database that relate
  180.             to rld).
  181.  
  182.           +o When running a setuid/setgid program rld could be
  183.             tricked into creating a security hole.  Now rld ignores
  184.             the -log option of the _RLD_ARGS environment variable
  185.             for setuid/setgid programs unless the real user is root
  186.             (in addition, rld continues to ignore some environment
  187.             variables when handling setuid/setgid programs run by
  188.             non-root users to avoid security holes).  (Bug #482870)
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.           +o When running a multigot DSO (a very very very unusual
  207.             DSO) rld could coredump if the DSO was moved when
  208.             loaded.  (Bug #483964)
  209.  
  210.           +o rld could hang a pthreads process if one or more
  211.             threads called fork(2) or if there were multiple
  212.             threads on a single sproc process-id or if a thread
  213.             moved from one process-id to another (in an sproc
  214.             group).  Whether a hang occurred depended on the timing
  215.             of events and how the events happened to relate to rld
  216.             processing.  In addition, an annoying message about
  217.             "GUARANTEE INIT" could be emitted by rld when the
  218.             message was inappropriate (with certain
  219.             processes/libraries using pthreads). (Bug #412725)
  220.  
  221.           +o rld could coredump if it thought it had allocated an
  222.             internal table (the msym table) but in reality the
  223.             compilation system had built it: writing to the
  224.             compiler-system-built table is an error (it is in
  225.             read-only memory) and unnecessary.  (Bug #449282)
  226.  
  227.           +o If a program did a series of dlclose(3)s and sproc(2)s
  228.             quickly enough and the timing was just right rld would
  229.             hang, hanging the program.  The program was killable,
  230.             but the sproc-thread could not be continued and the
  231.             program run was normally useless as a result of the
  232.             hang.  (Bug #433288)
  233.  
  234.           +o The runtime linker corrupts the user's data segment
  235.             when long LD_LIBRARY_PATH is specified.  It usually
  236.             results in segmentation fault while running the user
  237.             application. (Bug #337982)
  238.  
  239.           +o The runtime linker does not fix-up binaries with
  240.             prefetch instructions correctly when the binaries are
  241.             run on r8000 machines. This fix is only effective if
  242.             one of the kernel rollup patches in the series
  243.             beginning with patch 1722 is also installed (as of the
  244.             writing of these release notes the latest kernel rollup
  245.             patch is patch 2187, but be sure to check with with
  246.             your patch provider about kernel rollup patches). The
  247.             runtime linker may emit a message like "Cannot open
  248.             <executable> to fix up prefetches" on attempting to run
  249.             a binary with prefetches (such as a binary compiled for
  250.             the R10000) on an R8000 CPU if one of the kernel
  251.             patches is not installed.  (Bug #352206)
  252.  
  253.           +o The runtime linker would core dump on pixified binaries
  254.             if those binaries contain prefetch instructions. (Bug
  255.             #383655)
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.           +o The runtime linker loops when 2 delay-loaded libraries
  273.             are linked into the same executable and the 2 libraries
  274.             are inter-dependent on each other.  Also, the
  275.             performance of the libdl routines are not acceptable in
  276.             big applications when hundreds of libraries are loaded
  277.             using dlopen calls.  (Bug #361758)
  278.  
  279.           +o Specifing LD_LIBRARY_PATH with more than approximately
  280.             500 characters causes rld to dump core. (Bug #337982)
  281.  
  282.           +o The runtime linker loops in dlsym call. (Bug #364118)
  283.  
  284.           +o The runtime linker loops when dlopen'ing libraries that
  285.             have inter-dependencies. (Bug #290198)
  286.  
  287.           +o Initialized COMMON block variables have incorrect
  288.             values.  (Bug #387407)
  289.  
  290.           +o Dlopen(...,RTLD_NOW) does not report undefined symbols.
  291.             (Bug #428927)
  292.  
  293.           +o rqs will sometimes write an incorrect value to the
  294.             zero-th entry of the global-offset-table(GOT) of a C++
  295.             shared object or executable.
  296.  
  297.             This resulted in segmentation fault when the executable
  298.             or shared object containing the bad value is used. (Bug
  299.             #366990).
  300.  
  301.        1.4  _S_u_b_s_y_s_t_e_m_s__I_n_c_l_u_d_e_d__i_n__P_a_t_c_h__S_G_0_0_0_2_7_1_5
  302.  
  303.  
  304.        This patch release includes these subsystems:
  305.  
  306.  
  307.           +o patchSG0002715.compiler_eoe_sw.unix
  308.  
  309.           +o patchSG0002715.compiler_eoe_sw64.unix
  310.  
  311.           +o patchSG0002715.compiler_eoe_man.dso
  312.  
  313.           +o patchSG0002715.compiler_eoe_man.unix
  314.  
  315.           +o patchSG0002715.compiler_eoe.hdr.lib
  316.  
  317.           +o patchSG0002715.compiler_dev.hdr.lib
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.        1.5  _I_n_s_t_a_l_l_a_t_i_o_n__I_n_s_t_r_u_c_t_i_o_n_s
  339.  
  340.        Because you want to install only the patches for problems
  341.        you have encountered, patch software is not installed by
  342.        default.  After reading the descriptions of the bugs fixed
  343.        in this patch (see Section 1.3), determine the patches that
  344.        meet your specific needs.
  345.  
  346.        If, after reading Sections 1.1 and 1.2 of these release
  347.        notes, you are unsure whether your hardware and software
  348.        meet the requirements for installing a particular patch, run
  349.        _i_n_s_t.  The _i_n_s_t program does not allow you to install
  350.        patches that are incompatible with your hardware or
  351.        software.
  352.  
  353.        Patch software is installed like any other Silicon Graphics
  354.        software product.  Follow the instructions in your _S_o_f_t_w_a_r_e
  355.        _I_n_s_t_a_l_l_a_t_i_o_n _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e to bring up the miniroot
  356.        form of the software installation tools.
  357.  
  358.        Follow these steps to select a patch for installation:
  359.  
  360.          1.  At the Inst> prompt, type
  361.  
  362.              iiiinnnnssssttttaaaallllllll ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  363.  
  364.              where _x_x_x_x_x_x_x is the patch number.
  365.  
  366.          2.  Initiate the installation sequence. Type
  367.  
  368.              IIIInnnnsssstttt>>>> ggggoooo
  369.  
  370.          3.  You may find that two patches have been marked as
  371.              incompatible.  (The installation tools reject an
  372.              installation request if an incompatibility is
  373.              detected.)  If this occurs, you must deselect one of
  374.              the patches.
  375.  
  376.              IIIInnnnsssstttt>>>> kkkkeeeeeeeepppp ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  377.  
  378.              where _x_x_x_x_x_x_x is the patch number.
  379.  
  380.          4.  After completing the installation process, exit the
  381.              _i_n_s_t program by typing
  382.  
  383.              IIIInnnnsssstttt>>>> qqqquuuuiiiitttt
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                   - 7 -
  401.  
  402.  
  403.  
  404.        1.6  _P_a_t_c_h__R_e_m_o_v_a_l__I_n_s_t_r_u_c_t_i_o_n_s
  405.  
  406.        To remove a patch, use the _v_e_r_s_i_o_n_s _r_e_m_o_v_e command as you
  407.        would for any other software subsystem.  The removal process
  408.        reinstates the original version of software unless you have
  409.        specifically removed the patch history from your system.
  410.  
  411.        vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeee ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  412.  
  413.        where _x_x_x_x_x_x_x is the patch number.
  414.  
  415.        To keep a patch but increase your disk space, use the
  416.        _v_e_r_s_i_o_n_s _r_e_m_o_v_e_h_i_s_t command to remove the patch history.
  417.  
  418.        vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeeehhhhiiiisssstttt ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  419.  
  420.        where _x_x_x_x_x_x_x is the patch number.
  421.  
  422.        1.7  _K_n_o_w_n__P_r_o_b_l_e_m_s
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.